package org.apache.rocketmq.client.java.rpc;

import com.google.common.base.MoreObjects;

/**
 * @课程描述:从零带你写框架系列中的课程，整个系列包含netty，xxl-job，rocketmq，nacos，sofajraft，spring，springboot，disruptor，编译器，虚拟机等等。
 * @author：陈清风扬，个人微信号：chenqingfengyangjj。
 * @date:2025/6/10
 * @方法描述：封装rpc调用结果的类，封装了rpc调用的结果和上下文信息。
 */
public class RpcInvocation<T> {
    private final T t;
    private final Context context;

    public RpcInvocation(T t, Context context) {
        this.t = t;
        this.context = context;
    }

    public T getResponse() {
        return t;
    }

    public Context getContext() {
        return context;
    }

    @Override
    public String toString() {
        return MoreObjects.toStringHelper(this)
                .add("resp", t)
                .add("context", context)
                .toString();
    }
}